import { Mark, Color } from "./enums";
import { Card, Deck, Joker } from "./types";


//创建扑克牌
export function createDeck():Deck {
    // 创建数组
      const deck:Deck = [];
      //获取到枚举对象的值数组;
      const marks = Object.values(Mark) 
      const colors = Object.values(Color)
      for (const m of marks) {
        for (const c of colors) {
          // 加入普通卡牌
          deck.push({
                color:c,
                mark:m,
                getString() { 
                  return this.color + this.mark;
                },
            } as Card)//告诉ts插入的对象为Card
            // 或
          //   let card:NormalCard = {
          //     color:c,
          //     mark:m,
          //     getString() { 
          //       return this.color + this.mark;
          //     },
          // }
          // deck.push(card)
          // 或 
        //   deck.push(<Card>{
        //     color:c,
        //     mark:m,
        //     getString() { 
        //       return this.color + this.mark;
        //     },
        // }) 但不推荐使用，因为react中为一个组件会发生冲突
        }
      }
      // 加入大小王
      let joker: Joker = {
        type:"small",
        getString() {
          return "jo"
        },
      }
      deck.push(joker);

      joker={
        type : "big",
        getString() {
          return "JO"
        },
      }
      deck.push(joker);
      return deck;
    }